#include <iostream>

#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"

struct Path{
    int to_node;
    int len;
    bool visited;
    Path(int to_node,int len):to_node(to_node),len(len){}
};

struct Node{
//    int id;
    std::vector<Path> paths;
};


class OneLoop {
public:
    std::vector<Node> nodes;
    std::vector<int> nodes_dis;
    int farest_node;

    void dfs(int cur_node,int father,int walked_dis){
        //记录到节点的距离，以及pk最远节点。
        nodes_dis[cur_node]=walked_dis;
        if(walked_dis>nodes_dis[farest_node]){
            farest_node=cur_node;
        }
        for(auto&path:nodes[cur_node].paths){
            if(path.to_node!=father){
                dfs(path.to_node,cur_node,walked_dis+path.len);
            }
        }
    }
    int get_cost(int n){
        return n*10+n*(n+1)/2;
    }
    bool run(
            int n
//            std::string&s1,std::string& s2
    ) {
        nodes.resize(n);
        nodes_dis.resize(n);
//        std::vector<int> line(n);
//        for(int i=0;i<n;i++){
//            graph.push_back(line);
//        }
        for(int i=0;i<n-1;i++){
            int p,q,d;
            std::cin>>p>>q>>d;
            if(p>q){
                std::swap(q,p);
            }
            nodes[p-1].paths.push_back(Path(q-1,d));
            nodes[q-1].paths.push_back(Path(p-1,d));
        }
        farest_node=0;
        dfs(0,0,0);

        nodes_dis[farest_node]=0;
        dfs(farest_node,farest_node,0);

        printf("%d\n", get_cost(nodes_dis[farest_node]));
        return true;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int a, b, c, d, e;
        //        std::cin >> a;
//        std::string s1,s2;
//        while (1){
        while (
//                std::getline(std::cin,s1)
                std::cin >> a// >> b
                ) {
//            std::getline(std::cin,s2);
            OneLoop l;
            if (!l.run(a)) {
//                                return;
            }
        }


    }
};

int main() {

    //    bool cur_num= true;
    Solution().run();
    return 0;
}

